home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 April / CHIP 1996 aprilis (CD06).zip / CHIP_CD06.ISO / hypertxt.arj / 9412 / ONEHALF.CD < prev    next >
Text File  |  1994-11-27  |  12KB  |  184 lines

  1.           @VONE HALF@N
  2.  
  3.           @VSzomszéd vírus@N
  4.  
  5.           A  vírusok  rendszerint  megfertôznek  minden  programfile-t
  6.           a   merevlemezen,   s   valamilyen   módon   aktivizálják  a
  7.           bennük  rejlô  romboló  algoritmust,  ami  rövid  idô  alatt
  8.           megsemmisít   mindent,   amit   a   merevlemezen  tároltunk.
  9.           A   pusztítás  után  rövid  dühkitörés,  csapkodás,  majd  a
  10.           rendszer újbóli telepítése.
  11.  
  12.  
  13.  
  14.  
  15.           Az  alábbiakban egy valószínûleg szlovákiából származó, 3544
  16.           byte  hosszúságú  vírus  kerül  terítékre.  A vírust a benne
  17.           található  szignatúra  alapján  ONE  HALF-nak nevezték el. A
  18.           @Kmiért@N,  már  ami  a  név  mivoltát  illeti,  a  cikk  végére
  19.           világossá válik.
  20.  
  21.           Ez   a   vírus   is   egy   vírust   tartalmazó  programfile
  22.           elindításával   fertôz.   Elsôként   megmenti   önmagától  a
  23.           partíciós   táblát   és   partíciós   programot   tartalmazó
  24.           szektort,  majd egy rövidke programmal felülírja a partíciós
  25.           programot.  Ez  a  program  tölti be magát a vírust. Második
  26.           lépése:  a  vírus  elhelyezése  a  megfelelô  helyen. Normál
  27.           esetben  ez  egy másik file vagy a memória lenne, de mivel a
  28.           vírus(író)   rafinált,  a  vírustörzset  a  0.  cylinder  0.
  29.           oldalának  utolsó  hét  szektorába  írja  be.  Magyarul  DOS
  30.           partíción  kívül  helyezi  el a bacilus lényegét. Még néhány
  31.           merevlemez-függô   paramétert   beállít,   majd   átadja   a
  32.           vezérlést az eredeti programnak.
  33.  
  34.           A   vírus   aktivizálódása   a  következô  rendszertöltéskor
  35.           történik.  A  partíciós  program helyén lévô program betölti
  36.           és  elindítja a vírust. Önmagára írja a hexadecimális 13, 1C
  37.           megszakításokat,  majd  vár. Hogy mire? ...nem másra, mint a
  38.           hexadecimális   21-es   megszakításra.   Az  1C  megszakítás
  39.           másodpercenként  tizennyolcszor  kerül  meghívásra, s minden
  40.           meghívásakor  ellenôrzi  a  21-es megszakítás címét abban az
  41.           esetben,  ha  ez  a  cím  nagyobb,  mint  nulla, azaz ha már
  42.           aktivizálta    az    IBMDOS.COM/MSDOS.SYS    file    ezt   a
  43.           megszakítást,   akkor  önmagára  irányítja,  az  1C-t  pedig
  44.           visszaírja.  Mire  a  rendszer  teljesen betöltôdik, a vírus
  45.           beépül  néhány  megszakításba, hogy a lemezkezelô funkciókat
  46.           teljes  mértékben  felügyelje. Egy mezei vírus ezen a ponton
  47.           kezdi     el     fertôzni     a    merevlemezen    található
  48.           programfile-okat.  A  ONE  HALF-nak  ez nem célja, mivel már
  49.           felügyeli  a  fontosabb  funkciókat. De mit csinál, ha nem a
  50.           merevlemezre  írogatja sajátmagát? A válasz nagyon egyszerû,
  51.           minden   programot   megfertôz,   amit  nem  a  merevlemezen
  52.           indítunk  el,  vagy amit például floppyra másolunk. A lényeg
  53.           tehát   az,  hogy  olyan  adathordozóra  kerüljön  a  vírus,
  54.           amelyikkel  bekerülhet  az  információáramba, azaz egy másik
  55.           gépre juthat, s ott tovább fertôzhet.
  56.  
  57.           Ha  netán  gyanút  fog  egy felhasználó és felfedezi gépén a
  58.           vírus  garázdálkodását,  elsô  reakciója  nem  más,  mint az
  59.           általa  ismert víruskeresôk ráengedése a merevlemezre. Abban
  60.           az  esetben, ha nem heurisztikus víruskeresôvel próbálkozik,
  61.           esélye  sincs,  ugyanis  ez  a vírus mutálódik. Nem egyszerû
  62.           regisztermutációról   van   szó,   ez   ugyanis  rövid  úton
  63.           megfogható  lenne. A vírus utasításmutációt használ, ami azt
  64.           jelenti,  hogy  nemcsak  a  regisztereket cserélgeti. Minden
  65.           fertôzéskor   más  és  más  utasításokat  helyez  el  eltérô
  66.           sorrendben    az   új   példányban.   Szekvencia   keresôvel
  67.           nyilvánvalóan  nem  találnánk  meg  a vírust. A heurisztikus
  68.           keresônek  is  utasításanalizálást  kell  végeznie. Fel kell
  69.           ismernie  a  vírust  kititkosító ciklust, ami egy egyszerûbb
  70.           vírus   esetében  nem  is  jelent  nehézséget.  Az  1.  ábra
  71.           tartalmaz  egy  rövidke  titkosító ciklust, amit általában a
  72.           vírusok  használni szoktak. A 2. ábra a ONE HALF kititkosító
  73.           ciklusát  tartalmazza.  Van  egy  igen  furcsa dolog ebben a
  74.           ciklusban,  mégpedig  az,  hogy  minden  esetben  a  hordozó
  75.           programban  helyezkedik  el,  azaz  a  vírus  nem egyszerûen
  76.           hozzáíródik  a  file-hoz,  hanem  tíz  különbözô helyrôl tíz
  77.           byte-ot  kiemel  és elment a gazdaprogramból, s ezek helyére
  78.           teszi  a  kititkosító ciklust. Tehát a ciklus nem fizikailag
  79.           egymás  után  elhelyezkedô  utasításokból  áll,  így  azok a
  80.           heurisztikus  keresôk  sem  találják  meg,  amelyek  csak az
  81.           egymásután elhelyezkedô utasításokat vizsgálják.
  82.  
  83.           Miután  keresni  és  irtani  is  tudjuk a vírust, nekilátunk
  84.           a   merevlemez   megtisztításához.  Tiszta  rendszerlemezrôl
  85.           töltünk      operációs     rendszert,     ellenôrizzük     a
  86.           partíciósprogramot.  Mivel észrevesszük, hogy nem egyezik az
  87.           eredetivel,   megoldjuk   a   problémát   egy   @KFDISK   /MBR@N
  88.           paranccsal,   ami   felülírja   a  fertôzött  programot  egy
  89.           tisztával.   Következô  lépés  a  file-ok  megszabadítása  a
  90.           vírusoktól.  Miután  ezt  befejeztük,  mint  aki jól végezte
  91.           dolgát,   kivesszük   a   rendszerlemezt,   és  betöltjük  a
  92.           merevlemezen lévô operációs rendszert.
  93.  
  94.           Itt   logikusan  az  elsô  parancs  a  CHKDSK.  Meglepetésre
  95.           rengeteg  elveszett  cluster-t jelez, ami nem véletlen, hisz
  96.           a  vírusnak  --  tudtunkon  kívül  volt  egy rossz és egy jó
  97.           tulajdonsága.   A   rossz,  hogy  minden  rendszerindításkor
  98.           eltitkosított  két  cylindert a merevlemezünkbôl. A jó, hogy
  99.           amíg  a  vírus aktív, ezt vissza is konvertálja, ha olvasunk
  100.           ezekrôl   a  helyekrôl.  Mivel  minden  indításkor  több  az
  101.           eltitkosított   rész   a  merevlemezbôl,  így  egyszer  csak
  102.           elérkezik  az  az idô, amikor egy jól sikerült vírusírtással
  103.           megszabadulunk  a  teljes merevlemez tartalomtól is. A vírus
  104.           ugyanis  a  merevlemez  végétôl visszafelé titkosít, és azt,
  105.           hogy  éppen melyik cylindertôl van átbuherálva a merevlemez,
  106.           a  fertôzött  partíciós  program  tartalmazta  addig, amíg a
  107.           bosszútól  vezérelve  felül  nem írtuk.... Némi jóindulat is
  108.           szorult  a  vírus írójába, ugyanis ha a merevlemez felét már
  109.           eltitkosította   a   vírus,  néhányszor  kiírja  üzenetét  a
  110.           képernyôre.
  111.  
  112.           Sajnos  a vírusnak van hibája is, mivel a vírusos rendszerbe
  113.           bekerülô,  azonos  vírussal fertôzött programokról nem szedi
  114.           le  a  kórokozót.  Remélhetôleg  a  vírusírók  is ugyanazt a
  115.           szisztémát   követik,  mint  a  nagy  aklakgyártó  cég:  egy
  116.           következô verzió már nem tartalmazza ugyanazt a BUG-ot.
  117.  
  118.           @VDarvas Årpád@N
  119.  
  120.  
  121.           ┌──────────────────────────────────────────────────────────┐
  122.           │                        @V1. ábra@N                           │▒
  123.           │                                                          │▒
  124.           │ CS:23E        MOV     CX, 13CD                           │▒
  125.           │ CS:240        XOR     CS:[BX], AX                        │▒
  126.           │ CS:243        INC     BX                                 │▒
  127.           │ CS:244        INC     BX                                 │▒
  128.           │ CS:245        LOOP    240                                │▒
  129.           └──────────────────────────────────────────────────────────┘▒
  130.            ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  131.  
  132.           ┌──────────────────────────────────────────────────────────┐
  133.           │                        @V2. ábra@N                           │▒
  134.           │                                                          │▒
  135.           │ CS:B456       STI                                        │▒
  136.           │ CS:B457       CLC                                        │▒
  137.           │                                                          │▒
  138.           │ CS:B458       MOV     BP, 1234                           │▒
  139.           │ CS:B46A       JMP     B900                               │▒
  140.           │ .                                                        │▒
  141.           │ .                                                        │▒
  142.           │ CS:B900       STC                                        │▒
  143.           │                                                          │▒
  144.           │ CS:B901       MOV     SI, 0076                           │▒
  145.           │ CS:B905       JMP     B312                               │▒
  146.           │ .                                                        │▒
  147.           │ .                                                        │▒
  148.           │ CS:B312       PUSH    CS                                 │▒
  149.           │ CS:B313       POP     DS                                 │▒
  150.           │                                                          │▒
  151.           │ CS:B314       CLI                                        │▒
  152.           │                                                          │▒
  153.           │ CS:B315       XOR     [SI], BP                           │▒
  154.           │ CS:B317       JMP     B678                               │▒
  155.           │ .                                                        │▒
  156.           │ .                                                        │▒
  157.           │ CS:B678       POP     AX                                 │▒
  158.           │ CS:B679       PUSH    AX                                 │▒
  159.           │ CS:B67A       ADD     BP, 0987                           │▒
  160.           │ CS:B67D       JMP     BC09                               │▒
  161.           │ .                                                        │▒
  162.           │ .                                                        │▒
  163.           │ CS:BC09       INC     SI                                 │▒
  164.           │                                                          │▒
  165.           │ CS:BC0A       STI                                        │▒
  166.           │ CS:BC0B       CLD                                        │▒
  167.           │                                                          │▒
  168.           │ CS:BC0D       JMP     B100                               │▒
  169.           │ .                                                        │▒
  170.           │ .                                                        │▒
  171.           │ CS:B100       CMP     SI, 2345                           │▒
  172.           │                                                          │▒
  173.           │ CS:B104       STD                                        │▒
  174.           │                                                          │▒
  175.           │ CS:B105       JMP     B360                               │▒
  176.           │ .                                                        │▒
  177.           │ .                                                        │▒
  178.           │ CS:B360       JNE     B315                               │▒
  179.           │                                                          │▒
  180.           │ CS:B365       STI                                        │▒
  181.           │                                                          │▒
  182.           │ CS:B366       JMP     VìRUS                              │▒
  183.           └──────────────────────────────────────────────────────────┘▒
  184.            ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒